﻿//给出一个有n种字符组成的字符串，其中第i种字符出现的次数为ai。
//请你对该字符串应用哈夫曼编码，使得该字符串的长度尽可能短，求编码后的字符串的最短长度。
//
//输入描述：
//	第一行输入一个整数n(1≤n≤2⋅10^5)，表示字符种数。
//	第二行输入n个整数ai(1≤ai≤10^9)，表示每种字符的出现次数。
//输出描述：
//	输出一行一个整数，表示编码后字符串的最短长度。
//
//输入：
//	3
//	1 2 3
//输出：
//	9
//说明：
//	三种字符的哈夫曼编码分别为["00", "01", "1"]时，长度最短，最短长度为9。

#include <iostream>
#include <queue>
#include <vector>
using namespace std;
typedef long long LL;
int n;
int main() {
    cin >> n;
    priority_queue<LL, vector<LL>, greater<LL>> heap;
    while (n--) {
        LL x;
        cin >> x;
        heap.push(x);
    }
    // 构建最优⼆叉树 / 构建哈夫曼树
    LL ret = 0;
    while (heap.size() > 1) {
        LL t1 = heap.top();
        heap.pop();
        LL t2 = heap.top();
        heap.pop();
        heap.push(t1 + t2);
        ret += t1 + t2;
    }
    cout << ret << endl;
    return 0;
}














